\subsection[Perceptron]{Classification par Perceptron}

\noindent Le perceptron est un classifieur linéaire qui permet de trouver une séparation linéaire si et seulement si les classes sont séparables. Dans le cas contraire, le perceptron est incapable de trouver une séparation et tourne à l'infini. Pour observer une classification par perceptron qui fonctionne, nous avons choisi de tirer aléatoirement un certain nombre d'échantillons des classes que nous voulions tester. Il se trouve que lorsque nous tirons une centaine d'échantillons dans les classes que nous testons le perceptron se termine très souvent en trouvant une séparation.

\noindent La figure \ref{percep} illustre une séparation par l'hyperplan vert des classes rgb1 et rgb2 dont cent échantillons ont été pris.


\begin{figure}[hbtp]
\centering
\includegraphics[scale=0.5]{images/perceptron.png}
\caption{Séparation par Perceptron entre la classe rgb1 et la classe rgb2}
\label{percep}
\end{figure}

\noindent Le tableau suivant montre le taux de classification pour les classes testées précédemment en les ayant entraîner sur 100 échantillons. Pour avoir un résultat pertinent nous avons lancé la classification en prenant dix fois des échantillons aléatoires.


\begin{figure}[h]
\center
\begin{tabular}{|l||c|c|c|c|}
   \hline
   Échantillon test& \texttt{RGB1} & \texttt{RGB2} \\
   \hline\hline
   \texttt{RGB1\_V} & \textcolor{green}{0.907} &0.093 \\
   \texttt{RGB2\_V} & 0.0091 & \textcolor{green}{0.9909} \\
   \hline
\end{tabular}
\caption{Test d'un échantillon avec deux classes \texttt{RGB} sur Perceptron}
\end{figure}

\noindent Nous constatons que, en faisant un apprentissage du classifieur avec rgb1 et rgb2, nous avons plus de 90\% de bonne classification lorsque l'on met les échantillons de rgb1\_V en entrée, et plus de 99\% de bonne classification lorsque l'on teste avec rgb2\_V. Cependant, si nous avions fais l'apprentissage avec d'avantage d'échantillons pour chacune des deux classe d'apprentissage, nous n'aurions sans doute pas eu de résultats, car deux ensembles n'auraient pas étés linéairement séparable.\\
Il est donc primordiale de bien choisir les échantillons sensés représenter une classe, et de trouver les meilleur espace pour les confronter.\\


\subsection[Least Squares]{Classification par Least Squares}

\noindent La séparation par moindres carrés fonctionne comme la séparation par perceptron à ceci près que les moindres carrés cherche l'hyperplan maximisant la distance avec les échantillons. La figure ci dessous montre l'hyperplan entre la classe rgb1 et rgb2 en ne prenant que 80 échantillons des classe d'apprentissage.\\
Lors de notre implémentation nous avions le choix entre faire une inversion de matrice ce qui est coûteux en mémoire soit faire une descente de gradient sur l'hyperplan de séparation qui elle est coûteuse en temps de calcul. Nous avons porter notre choix sur la descente de gradient car nous avons beaucoup d'échantillons.

\begin{figure}[h]
\centering
\includegraphics[scale=0.4]{images/ls1.png}
\caption{Non convergence entre rgb1 et rgb2 (descente de gradient)}
\label{nonCon}
\end{figure}


\begin{figure}[h]
\center
\begin{tabular}{|l||c|c|c|c|}
   \hline
   Échantillon test& \texttt{RGB1} & \texttt{RGB2} \\
   \hline\hline
   \texttt{RGB1\_V} & \textcolor{green}{0.96} &0.04 \\
   \texttt{RGB2\_V} & 0.29 & \textcolor{green}{0.71} \\
   \hline
\end{tabular}
\caption{Test d'un échantillon avec deux classes avec Least Squares}
\end{figure}



\noindent La figure \ref{nonCon} montre un exemple de non convergence entre les classes rgb1 et rgb2. En effet, en faisant un zoom sur le plan, on s'aperçoit que certain échantillons rouges se trouvent du mauvais coté du plan.\\
Les tests ne se faisant pas avec l'ensemble des échantillons d'apprentissage et surtout, avec des échantillons pris aléatoirement, les résultats d'un test à l'autre ne sont pas identiques. Les résultats sont donc obtenus en faisant une moyenne sur 10 tests consécutifs.\\